package bite;

/**
 * Creared with IntelliJ IDEA.
 * Description:【走方格的方案数】
 * 请计算n*m的棋盘格子（n为横向的格子数，m为竖向的格子数）从棋盘左上角出发沿着边缘线从左上角走到右下角，总共有多少种走法，要求不能走回头路，即：
 * 只能往右和往下走，不能往左和往上走。
 * User:yxd
 * Date:2022-04-02
 * Time:15:24
 */
import java.util.*;
public class Day9_2 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int n = input.nextInt();
        int m = input.nextInt();
        int[][] dp = new int[n + 1][m + 1];
        //每个格子记录到当前格子的数目
        //状态转移方程 F(i,j) = dp[i - 1][j] + dp[i][j - 1]
        //赋初值第一行都是1第一列也都是1
        for(int j = 0;j <= m;j ++){
            dp[0][j] = 1;
        }
        for(int i = 0;i <= n;i ++){
            dp[i][0] = 1;
        }
        for (int i = 1; i <= n ; i++) {
            for (int j = 1; j <= m ; j++) {
                dp[i][j] = dp[i -1][j] + dp[i][j - 1];
            }
        }
        System.out.println(dp[n][m]);
    }
    public static int med(int n,int m){//老师的做法
        if((n == 1 && m >= 1)|| (m == 1 && n >= 1)){
            return m + n;
        }
        return med(n - 1,m) + med(n,m - 1 );//将所有子问题全部计算出来,每一条路径的可能性
    }

}

